

stock const String:szEntityPlayer[] = "player";
stock const String:szEntityPokeMod[] = "pokemod";
stock const String:szEntityPokeOak[] = "pokeoak";
stock const String:szEntityPokeItem[] = "pokeitem";
stock const String:szEntityPokeSkill[] = "pokeskill";
stock const String:szEntityHostage[] = "hostage_entity";

enum SKILLENT_PROP ( <<= 1 )
{
	SEP_NONE = 0,
	SEP_DAMAGE = 1,
	SEP_AOEDAMAGE,
	SEP_THINK,
	SEP_KILL,
	SEP_TOUCH,
	SEP_PLAYERFOLLOW,
}

enum ENTITY_PROPS
{
	//Ints
	ENTITY_PROPERTIES,
	ENTITY_OWNER,
	ENTITY_SKILL,
	ENTITY_SKILLNUM,
	ENTITY_SPRITE,
	ENTITY_SOUND,
	ENTITY_DAMAGE,
	ENTITY_TARGET,
	ENTITY_AOETYPE,
	ENTITY_PLAYSOUND,

	//Floats
	ENTITY_FLOATS,
	ENTITY_THINKTIME = ENTITY_FLOATS,
	ENTITY_RADIUS,
	ENTITY_SCALE,
	ENTITY_NEXTDAMAGETIME,
	ENTITY_DAMAGETIME,
	ENTITY_KILLTIME,
}
stock const EntityProp[ ENTITY_PROPS ] = {
	//Ints
	pev_groupinfo,
	pev_owner,
	pev_playerclass,
	pev_euser1,
	pev_iuser1,
	pev_iuser2,
	pev_iuser3,
	pev_iuser4,
	pev_euser2,
	pev_euser3,

	//Floats
	pev_fuser1,
	pev_fuser2,
	pev_fuser3,
	pev_dmgtime,
	pev_teleport_time,
	pev_fuser4
}


#define EntityValid(%1)              pev_valid( %1 )
#define EntityCreate()               create_entity( "info_target" )

#define EntitySetMoveType(%1,%2)     set_pev( %1, pev_movetype, %2 )
#define EntitySetSolid(%1,%2)        set_pev( %1, pev_solid, %2 )
#define EntitySetModel(%1,%2)        entity_set_model( %1, gModels[ %2 ] )
#define EntitySetSpriteModel(%1,%2)  entity_set_model( %1, gSprites[ %2 ] )
#define EntitySetOrigin(%1,%2)       fm_entity_set_origin( %1, %2 )
#define EntitySetAngles(%1,%2)       set_pev( %1, pev_angles, %2 )
#define EntitySetSize(%1,%2,%3)      fm_entity_set_size( %1, %2, %3 )
#define EntitySetVelocity(%1,%2)     set_pev( %1, pev_velocity, %2 )

#define EntityGetOrigin(%1,%2)       pev( %1, pev_origin, %2 )
#define EntityGetAngles(%1,%2)       pev( %1, pev_angles, %2 )
#define EntityGetVelocity(%1,%2)     pev( %1, pev_velocity, %2 )

#define entity_in_water(%1)          ( pev( %1, pev_waterlevel ) == 3 )
#define entity_on_ground(%1)         ( pev( %1, pev_flags ) & FL_ONGROUND )
#define entity_in_air(%1)            !( pev( %1, pev_flags ) & FL_ONGROUND )

